using System;
using System.Collections.Generic;
using System.Text;

namespace Googleboys.Inventa.Concept
{
    public class Inventar
    {
        //private ItemList<Gegenstand> _Gegenstaende;

        private ItemList<Software> _Software;
        private ItemList<Hardware> _Hardware;
        private ItemList<Mobiliar> _Mobiliar;
        private ItemList<Buch> _Buecher;

        public Inventar()
        {
            //_Gegenstaende = new ItemList<Gegenstand>();

            _Software = new ItemList<Software>();
            _Hardware = new ItemList<Hardware>();
            _Mobiliar = new ItemList<Mobiliar>();
            _Buecher = new ItemList<Buch>();
        }

        public void GegenstandHinzufuegen(Gegenstand derGegenstand)
        {
            //_Gegenstaende.Add(derGegenstand);

            if (derGegenstand is Software)
                _Software.Add((Software)derGegenstand);
            else if (derGegenstand is Hardware)
                _Hardware.Add((Hardware) derGegenstand);
            else if (derGegenstand is Mobiliar)
                _Mobiliar.Add((Mobiliar)derGegenstand);
            else if (derGegenstand is Buch)
                _Buecher.Add((Buch)derGegenstand);
        }

        public void GegenstandLoeschen(Gegenstand derGegenstand)
        {
            //_Gegenstaende.Remove(derGegenstand);

            if (derGegenstand is Software)
                _Software.Remove((Software)derGegenstand);
            else if (derGegenstand is Hardware)
                _Hardware.Remove((Hardware)derGegenstand);
            else if (derGegenstand is Mobiliar)
                _Mobiliar.Remove((Mobiliar)derGegenstand);
            else if (derGegenstand is Buch)
                _Buecher.Remove((Buch)derGegenstand);
        }

        public void GegenstandBearbeiten()
        {
            throw new System.NotImplementedException();
        }

        public ItemList<Software> GetSoftwareList()
        {
            return _Software;
        }

        public ItemList<Hardware> GetHardwareList()
        {
            return _Hardware;
        }

        public ItemList<Mobiliar> GetMobiliarListe()
        {
            return _Mobiliar;
        }

        public ItemList<Buch> GetBuchListe()
        {
            return _Buecher;
        }
    }
}
